package com.hdjk.view.receiver;

import android.annotation.SuppressLint;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import com.hdjk.view.activity.main.LoginActivity;
import com.hdjk.view.activity.main.MainTabActivity;

import cn.jpush.android.api.JPushInterface;

/**
 * 自定义接收器
 */
@SuppressLint("NewApi")
public class JpushReceiver extends BroadcastReceiver {

	private static final String TAG = "JpushReceiver";
	private NotificationManager nm;

	@Override
	public void onReceive(Context context, Intent intent) {
		if (null == nm) {
			nm = (NotificationManager) context
					.getSystemService(Context.NOTIFICATION_SERVICE);
		}

		Bundle bundle = intent.getExtras();

		if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
			Log.d(TAG, "JPush用户注册成功");
		} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent
				.getAction())) {
			Log.d(TAG, "接受到推送下来的自定义消息");
		} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent
				.getAction())) {
			Log.d(TAG, "接受到推送下来的通知");
			// receivingNotification(context,bundle);
		} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent
				.getAction())) {
			Log.d(TAG, "用户点击打开了通知");
			openNotification(context, bundle);
		} else {
			Log.d(TAG, "Unhandled intent - " + intent.getAction());
		}

//		try {
//			Bundle bundle = intent.getExtras();
//
//			if (JPushInterface.ACTION_REGISTRATION_ID
//					.equals(intent.getAction())) {
//				// String regId = bundle
//				// .getString(JPushInterface.EXTRA_REGISTRATION_ID);
//				// Log.d(TAG, "[JpushReceiver] 接收Registration Id : " + regId);
//				// send the Registration Id to your server...
//			} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent
//					.getAction())) {
//				// Log.d(TAG, "[JpushReceiver] 接收到推送下来的自定义消息: " +
//				// bundle.getString(JPushInterface.EXTRA_MESSAGE));
//				processCustomMessage(context, bundle);
//			} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED
//					.equals(intent.getAction())) {
//				// Log.d(TAG, "[JpushReceiver] 接收到推送下来的通知");
//				// int notifactionId =
//				// bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
//				// Log.d(TAG, "[JpushReceiver] 接收到推送下来的通知的ID: " +
//				// notifactionId);
//			} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent
//					.getAction())) {
//				// Log.d(TAG, "[JpushReceiver] 用户点击打开了通知");
//				// //打开自定义的Activity
//				// Intent i = new Intent(context, TestActivity.class);
//				// i.putExtras(bundle);
//				// //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//				// i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
//				// Intent.FLAG_ACTIVITY_CLEAR_TOP );
//				// context.startActivity(i);
//			} else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent
//					.getAction())) {
//				// Log.d(TAG, "[JpushReceiver] 用户收到到RICH PUSH CALLBACK: " +
//				// bundle.getString(JPushInterface.EXTRA_EXTRA));
//				// 在这里根据 JPushInterface.EXTRA_EXTRA 的内容处理代码，比如打开新的Activity，
//				// 打开一个网页等..
//			} else if (JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent
//					.getAction())) {
//				// boolean connected = intent.getBooleanExtra(
//				// JPushInterface.EXTRA_CONNECTION_CHANGE, false);
//				// Log.w(TAG, "[JpushReceiver]" + intent.getAction()
//				// +" connected state change to "+connected);
//			} else {
//				// Log.d(TAG, "[JpushReceiver] Unhandled intent - " +
//				// intent.getAction());
//			}
//		} catch (Exception e) {
//
//		}
	}

//	private void receivingNotification(Context context, Bundle bundle){
//        String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);
//        Log.d(TAG, " title : " + title);
//        String message = bundle.getString(JPushInterface.EXTRA_ALERT);
//        Log.d(TAG, "message : " + message);
//        String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
//        Log.d(TAG, "extras : " + extras);
//    }

	private void openNotification(Context context, Bundle bundle){
		// 通过token获取用户信息 TODO
		String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
		String type = "1", id = "";
//		try {
//			if (null != extras && !"".equals(extras)) {
//				JSONObject json = new JSONObject(extras);
//
//				if (json.has("type")) {
//					type = new JSONObject(extras).get("type").toString();
//				}
//
//				if (json.has("id")) {
//					type = new JSONObject(extras).get("id").toString();
//				}
//			}
//		} catch (JSONException e) {
//			e.printStackTrace();
//			return;
//		}

		Intent intent = new Intent(context, MainTabActivity.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(intent);
	}

//	private void processCustomMessage(Context context, Bundle bundle) {
//		String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
//		String json = bundle.getString(JPushInterface.EXTRA_EXTRA);
//
//		mn = (NotificationManager) context
//				.getSystemService(Context.NOTIFICATION_SERVICE);
//		Notification.Builder builder = new Notification.Builder(context);
//		Intent intent = new Intent(context, MainActivity.class);// 点击跳转位置
//
//		try {
//			if (null != json && !"".equals(json)
//					&& new JSONObject(json).has("url")) {
//				String url = new JSONObject(json).get("url").toString();
//
//				intent.putExtra("url", url);
//			}
//		} catch (JSONException e) {
//			e.printStackTrace();
//		}
//
//		PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
//				intent, PendingIntent.FLAG_UPDATE_CURRENT);
//		builder.setContentIntent(contentIntent);
//		builder.setSmallIcon(R.drawable.ic_launcher);
//		builder.setTicker(message); // 测试通知栏标题
////		builder.setContentText(message); // 下拉通知内容
////		builder.setContentTitle(context.getResources().getString(
////				R.string.app_name));// 下拉通知栏标题
//		builder.setContentTitle(message);
//		builder.setAutoCancel(true);
//		builder.setDefaults(Notification.DEFAULT_ALL);
//		Notification notification = builder.build();
//		mn.notify((int) System.currentTimeMillis(), notification);
//	}
}